package org.code.boot.domain.boot;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.baomidou.mybatisplus.annotation.TableField;
import org.code.boot.domain.BaseEntity;

/**
 * 火车信息对象 biz_train
 * 
 * @author coder
 * @date 2025-08-28
 */
public class BizTrain extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 火车ID */
    private Long trainId;

    /** 火车车次 */
    private String trainNumber;

    /** 火车名称 */
    private String trainName;

    /** 出发站 */
    private String departureStation;

    /** 到达站 */
    private String arrivalStation;

    /** 出发时间 */
    private Date departureTime;

    /** 到达时间 */
    private Date arrivalTime;

    /** 列车型号 */
    private String trainType;

    /** 总车厢数 */
    private Integer totalCarriages;

    /** 火车图片 */
    private String trainImage;

    /** 总可用座位数 (不存储在数据库中，由座位配置计算得出) */
    @TableField(exist = false)
    private Integer availableSeats;

    public void setTrainId(Long trainId) 
    {
        this.trainId = trainId;
    }

    public Long getTrainId() 
    {
        return trainId;
    }

    public void setTrainNumber(String trainNumber) 
    {
        this.trainNumber = trainNumber;
    }

    public String getTrainNumber() 
    {
        return trainNumber;
    }

    public void setTrainName(String trainName) 
    {
        this.trainName = trainName;
    }

    public String getTrainName() 
    {
        return trainName;
    }

    public void setDepartureStation(String departureStation) 
    {
        this.departureStation = departureStation;
    }

    public String getDepartureStation() 
    {
        return departureStation;
    }

    public void setArrivalStation(String arrivalStation) 
    {
        this.arrivalStation = arrivalStation;
    }

    public String getArrivalStation() 
    {
        return arrivalStation;
    }

    public void setDepartureTime(Date departureTime) 
    {
        this.departureTime = departureTime;
    }

    public Date getDepartureTime() 
    {
        return departureTime;
    }

    public void setArrivalTime(Date arrivalTime) 
    {
        this.arrivalTime = arrivalTime;
    }

    public Date getArrivalTime() 
    {
        return arrivalTime;
    }

    public void setTrainType(String trainType) 
    {
        this.trainType = trainType;
    }

    public String getTrainType() 
    {
        return trainType;
    }

    public void setTotalCarriages(Integer totalCarriages) 
    {
        this.totalCarriages = totalCarriages;
    }

    public Integer getTotalCarriages() 
    {
        return totalCarriages;
    }

    public void setTrainImage(String trainImage) 
    {
        this.trainImage = trainImage;
    }

    public String getTrainImage() 
    {
        return trainImage;
    }

    public void setAvailableSeats(Integer availableSeats) 
    {
        this.availableSeats = availableSeats;
    }

    public Integer getAvailableSeats() 
    {
        return availableSeats;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("trainId", getTrainId())
            .append("trainNumber", getTrainNumber())
            .append("trainName", getTrainName())
            .append("departureStation", getDepartureStation())
            .append("arrivalStation", getArrivalStation())
            .append("departureTime", getDepartureTime())
            .append("arrivalTime", getArrivalTime())
            .append("trainType", getTrainType())
            .append("totalCarriages", getTotalCarriages())
            .append("trainImage", getTrainImage())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
